package com.iot.server.service;

import com.iot.core.domain.BaseDO;
import com.iot.server.domain.SelectDO;
import com.iot.server.domain.SysDictDO;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @author wuzt
 * Date 2019/10/12 14:18
 * Version 1.0
 * @ClassName DictService
 * Description
 **/
@Service
public interface DictService {
    /**
     * 获取所有数据字典；key为type
     *
     * @return
     */
    Map<String, Map<String, String>> getDictsMap();

    /**
     * 将list中的对象有DictName注解的字段设置为该字典名称
     *
     * @param list
     * @param clazz
     */
    <T extends BaseDO> void setDictName(List<T> list, Class<? extends BaseDO> clazz);

    /**
     * 获取指定type的dict
     *
     * @param type
     * @return
     */
    List<SysDictDO> getDictByType(String type);

    List<SelectDO> getSelectList(String type);

    /**
     * 将值修改回数据字典
     *
     * @param t
     */
    <T> void setNameToDict(T t);
}
